Generic bi-directional map, and related initialisation functions. At the moment
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 17 Dec 2009 06:27:56 +0000 (06:27 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 17 Dec 2009 06:27:56 +0000 (06:27 +0000)
commitab562bd46c7041d82523322dde38d42494fb37ca
treed249f5ba799f603f43370f9eccac5b98821762b3
parent7e31226c7a62a1b88727b9e718eb11b745de16ab
Generic bi-directional map, and related initialisation functions. At the moment
a single map is used to store mappings between sharing handles and disk blocks.
This is used to share pages which store data read of the same blocks on
(virtual) disk.
Note that the map is stored in a shared memory region, as it needs to be
accessed by multiple tapdisk processes. This complicates memory allocation
(malloc cannot be used), prevents poniters to be stored directly (as the shared
memory region might and is mapped at different base address) and finally pthread
locks need to be multi-process aware.

Signed-off-by: Grzegorz Milos <Grzegorz.Milos@citrix.com>
14 files changed:
tools/Makefile
tools/blktap/drivers/Makefile
tools/blktap/drivers/blktapctrl.c
tools/blktap2/drivers/Makefile
tools/blktap2/drivers/tapdisk-vbd.c
tools/memshr/Makefile [new file with mode: 0644]
tools/memshr/bidir-hash.c [new file with mode: 0644]
tools/memshr/bidir-hash.h [new file with mode: 0644]
tools/memshr/bidir-namedefs.h [new file with mode: 0644]
tools/memshr/interface.c [new file with mode: 0644]
tools/memshr/memshr-priv.h [new file with mode: 0644]
tools/memshr/memshr.h [new file with mode: 0644]
tools/memshr/shm.c [new file with mode: 0644]
tools/memshr/shm.h [new file with mode: 0644]